package com.example.demo.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.demo.entity.User;
import com.example.demo.dto.CustomerServiceConnection;
import com.example.demo.exception.MyException;
import jakarta.servlet.http.HttpSession;

public interface UserService extends IService<User> {

    // 通过id获取用户信息
    User getUserById(int id);

    // 用户登录
    User login(String phone,String password) throws MyException;

    // 添加退出登录方法
    boolean logout(int userId);

    // 发送验证码
    Integer sendMsg(String phone) throws MyException;

    // 验证码登录
    User checkMsg(String phone, Integer code) throws MyException;

    // 通过验证码修改用户密码方法
    boolean changePassword(Integer userId, String newPassword, String phone, Integer code) throws MyException;

    // 添加注销账号方法
    boolean revokeAccount(String phone, Integer code) throws MyException;

    // 个人资料查看
    User getUserProfile(int userId);

    // 头像设置
    boolean updateUserHead(int userId, String headUrl);

    // 基本信息管理
    boolean updateUserInfo(int userId, String nickname, String gender, Integer age, String email);

    // 添加修改密码方法
    boolean changePassword(int userId, String oldPassword, String newPassword);

    //重新加密用户密码
    boolean encryptUserPassword(int userId, String password);



    // 获取一位空闲客服
    CustomerServiceConnection getCustomerServiceConnection();

    // 先检查用户是否绑定了客服，否则获取一位客服
    CustomerServiceConnection getCustomerServiceConnection(String userId);
}

